

#ifndef UCPLPLOTREACTOR_H
#define UCPLPLOTREACTOR_H

#include "zAdAChar.h"
#include "zacpl.h"
#include "zacplobject.h"

class UcPlPlotInfo;
class UcPlPlotPageInfo;
class UcPlPlotProgress;

class UcPlPlotReactor : public UcRxObject 
{
public:

    enum PlotType {
        kPlot,
        kPreview,
        kBackgroundPackaging,
        kBackgroundPlot
    };

    UCPL_PORT virtual void beginPlot(UcPlPlotProgress* pPlotProgress, PlotType type);

    UCPL_PORT virtual void beginDocument(UcPlPlotInfo& plotInfo,
                                         const ZTCHAR * pDocname,
                               ZSoft::Int32 nCopies = 1, bool bPlotToFile = false,
                               const ZTCHAR * pFilename = NULL);

    UCPL_PORT virtual void beginPage(UcPlPlotPageInfo& pageInfo, UcPlPlotInfo& plotInfo,
                           bool bLastPage);

    UCPL_PORT virtual void endPage(UcPlPlotProgress::SheetCancelStatus status);

    UCPL_PORT virtual void endDocument(UcPlPlotProgress::PlotCancelStatus status);

    UCPL_PORT virtual void endPlot(UcPlPlotProgress::PlotCancelStatus status);

    UCPL_PORT virtual void plotCancelled();

    UCPL_PORT virtual void pageCancelled();

    UCPL_PORT virtual ~UcPlPlotReactor();
    
protected:
    UCPL_PORT UcPlPlotReactor();
};

#endif 
